<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Ultima verificacion: 15-10-2014 ; 22-11-2014 ; 28-02-2015
class cicloLectivo extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los ciclos lectivos existentes pero NO los borrados (-1)
	function consultar(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Cargo el modelo donde estan los datos de los ciclos registrados para pedirle un listado con todos ellos
			$this->load->model('m_ciclo_lectivo');
			
			//Busco todos los ciclos lectivos pero no los borrados.
			$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar("");
			
			//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en una tabla
			$datos['ciclosLectivos'] = $listadoCiclosLectivos;
			
			//Cargo la vista donde se muestra la tabla de ciclos lectivos y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_ciclos_lectivos', $datos, true);
			
			//Cargo la vista principal con los datos de la vista recien generada
			$this->load->view('v_sistema', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Sirve para eliminar al ciclo lectivo pasado por la url
	function eliminar($idCicloLectivo=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor que cero.
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos registrados
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo que hay que eliminar
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente
				if($cicloLectivo->num_rows() == 1){
					//Elimino al ciclo lectivo pasado por la url
					$respuesta = $this->m_ciclo_lectivo->eliminar($idCicloLectivo, $this->session->userdata('idUsuarioLog'));
					
					//Busco todos los ciclos lectivos, pero no los borrados que quedaron
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar("");
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en una tabla
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					//Cargo la vista donde se muestra la tabla de ciclos
					$this->load->view('v_ciclos_lectivos', $datos);
				} else {
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					echo("No existe el registro seleccionado para borrar.");
				}
			} else {
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se ha pasado los parametros necesarios para borrar un registro.");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un registro.");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Abre la pantalla con el formulario para crear un ciclo lectivo nuevo
	function abrirPantallaCrear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Cargo la vista donde se muestra el formulario para crear un ciclo lectivo y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_ciclos_lectivos_crear',"", true);
			
			//Cargo la vista principal con los datos de la vista para crear un registro
			$this->load->view('v_sistema', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo crea realmente el ciclo lectivo. La respuesta se muestra en un iframe dentro del formulario
	function crear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post el nombre y el estado del ciclo lectivo a crear.
			if($this->input->post('nombre',true) != "" && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Creamos el ciclo lectivo
				$resultado = $this->m_ciclo_lectivo->crear($this->input->post('nombre',true), $this->input->post('descripcion',true), $this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
				
				if($resultado == 1){
					echo("<script> alert('El ciclo lectivo: ".$this->input->post('nombre',true)." se ha creado correctamente.');</script>");
				}else{
					echo("<script> alert('El ciclo lectivo: ".$this->input->post('nombre',true)." no se ha creado. Ha habido un error.');</script>");
				}
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo abre la pantalla con los datos del ciclo lectivo pasado por la url
	function abrirPantallaModificar($idCicloLectivo=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor que cero.
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo que hay que modificar
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente
				if($cicloLectivo->num_rows() == 1){
					//Le paso el ciclo lectivo a modificar a la vista
					$datos['cicloLectivoSel'] = $cicloLectivo;
					
					//Busco al ciclo lectivo siguiente del que hay que modificar
					$idCicloLectivoSig = $this->m_ciclo_lectivo->getContiguo($idCicloLectivo,1);
					
					//Le paso el ciclo lectivo siguiente del que hay que modificar a la vista
					$datos['idCicloLectivoSig'] = $idCicloLectivoSig;
					
					//Busco al ciclo lectivo anterior del que hay que modificar
					$idCicloLectivoAnt = $this->m_ciclo_lectivo->getContiguo($idCicloLectivo,-1);
					
					//Le paso el ciclo lectivo anterior del que hay que modificar a la vista
					$datos['idCicloLectivoAnt'] = $idCicloLectivoAnt;
					
					//Cargo la vista donde se muestra el formulario para modificar un ciclo lectivo y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_ciclos_lectivos_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar un registro
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Este metodo realmente modifica los datos de un ciclo lectivo
	function modificar($idCicloLectivo=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post el nombre y el estado del ciclo lectivo a modificar. 
			//Ademas que se haya pasado por la url el id del ciclo lectivo a modificar
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>0 && $this->input->post('nombre',true) != "" && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo que hay que modificar
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente
				if($cicloLectivo->num_rows() == 1){
					//Modificamos el ciclo lectivo
					$resultado = $this->m_ciclo_lectivo->modificar($idCicloLectivo, $this->input->post('nombre',true), $this->input->post('descripcion',true), $this->input->post('estado',true));
					
					if($resultado == 1){
						echo("<script> alert('El ciclo lectivo: ".$this->input->post('nombre',true)." se ha modificado correctamente.');</script>");
					}else{
						echo("<script> alert('El ciclo lectivo: ".$this->input->post('nombre',true)." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
					}				
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra la estructura de ciclos, cursos, divisiones, asignaturas y modulos del ciclo lectivo de origen para importarlo en el ciclo de destino.
	//Filtros:
	//Si idCicloLectivoOrigen e idCicloLectivoDestino es distinto de cero, se muestra la estructura del primero, caso contrario, nada.
	//IdCicloLectivoDestino se utiliza para seleccionarlo en el combo.
	//Ultima verificación: 10 - 10 - 2014
	function abrirPantallaImportar($idCicloLectivoOrigen=null, $idCicloLectivoDestino=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivoOrigen pasado sea numerico y mayor o igual que cero. Lo mismo para idCicloLectivoDestino.
			if(is_numeric($idCicloLectivoOrigen) && $idCicloLectivoOrigen>=0 && is_numeric($idCicloLectivoDestino) && $idCicloLectivoDestino>=0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo origen para corroborar que exista
				$cicloLectivoOrigen = $this->m_ciclo_lectivo->get($idCicloLectivoOrigen);
				
				//Busco al ciclo lectivo destino para corroborar que exista
				$cicloLectivoDestino = $this->m_ciclo_lectivo->get($idCicloLectivoDestino);
				
				//Tercera comprobacion: Que el ciclo lectivo origen pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el ciclo lectivo destino.
				if(($cicloLectivoOrigen->num_rows() == 1 || $idCicloLectivoOrigen==0) && ($cicloLectivoDestino->num_rows() == 1 || $idCicloLectivoDestino==0)){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Le paso a la vista el id del ciclo de origen para que lo seleccione en el combo de filtrado
					$datos['idCicloLectivoOrigenSel'] = $idCicloLectivoOrigen;
					
					//Le paso a la vista el id del ciclo de destinto para que lo seleccione en el combo de filtrado
					$datos['idCicloLectivoDestinoSel'] = $idCicloLectivoDestino;
					
					//Cargo el modelo donde estan los datos de los cursos, divisiones, asignaturas y modulos. Tambien las asignaciones docentes.
					$this->load->model('m_curso');
					$this->load->model('m_division');
					$this->load->model('m_asignatura');
					$this->load->model('m_modulo');
					$this->load->model('m_asignacion_docente');
					
					//Cargo la vista donde se muestra la estructura del ciclo y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_ciclos_lectivos_importar', $datos, true);
					
					//Cargo la vista principal con los datos de la vista recien generada
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Recorre la estructura de ciclos, cursos, divisiones, asignaturas y modulos del ciclo lectivo de origen para importarlo en el ciclo de destino.
	//Filtros:
	//Tanto idCicloLectivoOrigen e idCicloLectivoDestino deben ser distinto de cero y mayor que cero.
	//Ultima verificación: 10 - 10 - 2014
	function importar($idCicloLectivoOrigen=null, $idCicloLectivoDestino=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivoOrigen pasado sea numerico y mayor que cero. Lo mismo para idCicloLectivoDestino.
			if(is_numeric($idCicloLectivoOrigen) && $idCicloLectivoOrigen>0 && is_numeric($idCicloLectivoDestino) && $idCicloLectivoDestino>0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo origen para corroborar que exista
				$cicloLectivoOrigen = $this->m_ciclo_lectivo->get($idCicloLectivoOrigen);
				
				//Busco al ciclo lectivo destino para corroborar que exista
				$cicloLectivoDestino = $this->m_ciclo_lectivo->get($idCicloLectivoDestino);
				
				//Tercera comprobacion: Que el ciclo lectivo origen pasado por la url sea existente. Lo mismo para el ciclo lectivo destino.
				if($cicloLectivoOrigen->num_rows() == 1 && $cicloLectivoDestino->num_rows() == 1){
					//Cargo el modelo donde estan los datos de los cursos, divisiones, asignaturas y modulos. Tambien asignaciones docentes y restricciones horarias.
					$this->load->model('m_curso');
					$this->load->model('m_division');
					$this->load->model('m_asignatura');
					$this->load->model('m_modulo');
					$this->load->model('m_asignacion_docente');
					
					$this->load->model('m_tiempoasignabledivision');
					$this->load->model('m_tiempoasignableasignatura');
					
					//Si resultado es mayor que cero es porque algo se importo.
					$resultado = 0;
					$resultadoParcial = 0;
					
					//Busco todos los cursos activos del ciclo de origen
					$listadoCursos = $this->m_curso->buscarActivos(" AND curso.idCicloLectivo=".$idCicloLectivoOrigen);
					
					//Recorremos todos los cursos e importamos los seleccionados
					foreach ($listadoCursos->result() as $curso){
						//Verificamos si el curso ha sido seleccionado a importar o no
						if($this->input->post('e_'.$curso->idCurso.'_',true) == "on"){
							//Creamos el curso a importar con los datos del seleccionado
							$resultadoParcial = $this->m_curso->crear($idCicloLectivoDestino, $curso->idTurno, $curso->orden, $curso->nombre, $curso->abreviatura, $curso->descripcion, $curso->estado, $this->session->userdata('idUsuarioLog'));
							$resultado += $resultadoParcial;
							
							if($resultadoParcial==1){
								//Ultimo registro creado
								$ultimoCursoCreado = $this->db->insert_id();
								
								//Busco todas las divisiones activas del curso en cuestion para saber si hay que importar alguna.
								$listadoDivisiones = $this->m_division->buscarActivos(" AND division.idCurso=".$curso->idCurso);
								
								//Recorremos todas las divisiones e importamos las seleccionadas
								foreach ($listadoDivisiones->result() as $division){
									//Verificamos si la division ha sido seleccionada a importar o no
									if($this->input->post('e_'.$curso->idCurso.'_'.$division->idDivision.'_',true) == "on"){
										//Creamos la division a importar con los datos de la seleccionada
										$resultadoParcial = $this->m_division->crear($ultimoCursoCreado, $division->idEspacioEscolar, $division->orden, $division->nombre, $division->colorDeFondo, $division->colorDeTexto, $division->descripcion, $division->estado, $this->session->userdata('idUsuarioLog'));
										$resultado += $resultadoParcial;
										
										if($resultadoParcial==1){
											//Ultimo registro creado
											$ultimaDivisionCreada = $this->db->insert_id();
											
											//Una vez creada la nueva division hay que crearles las restricciones horarias que tiene la original.
											//Busco todas las restricciones de la division en cuestion para importarlas.
											$listadoRestricciones = $this->m_tiempoasignabledivision->buscarActivos(" AND tiempoasignabledivision.idDivision=".$division->idDivision);
											
											//Recorremos todas las restricciones y las creamos a la nueva division
											foreach ($listadoRestricciones->result() as $restriccion){
												$resultadoParcial = $this->m_tiempoasignabledivision->crear($ultimaDivisionCreada, $restriccion->idTurno, $restriccion->dia, $restriccion->periodo, $restriccion->disponibilidad, 1, $this->session->userdata('idUsuarioLog'));
												$resultado += $resultadoParcial;
											}
											
											//Busco todas las asignaturas activas de la division en cuestion para saber si hay que importar alguna.
											$listadoAsignaturas = $this->m_asignatura->buscarActivos(" AND asignatura.idDivision=".$division->idDivision);
										
											//Recorremos todas las asignaturas e importamos las seleccionadas
											foreach ($listadoAsignaturas->result() as $asignatura){
												//Verificamos si la asignatura ha sido seleccionada a importar o no
												if($this->input->post('e_'.$curso->idCurso.'_'.$division->idDivision.'_'.$asignatura->idAsignatura.'_',true) == "on"){
													//Creamos la asignatura a importar con los datos de la seleccionada
													$resultadoParcial = $this->m_asignatura->crear(random_string('alnum',20), $ultimaDivisionCreada, $asignatura->idPlanEstudio, $asignatura->idEspacioEscolar, $asignatura->idTurno, $asignatura->nombre, $asignatura->abreviatura, $asignatura->colorDeFondo, $asignatura->colorDeTexto, $asignatura->dificultad, $asignatura->canalDeStreaming, $asignatura->idArchivo, $asignatura->descripcion, $asignatura->estado, $this->session->userdata('idUsuarioLog'));
													$resultado += $resultadoParcial;
												
													if($resultadoParcial==1){
														//Ultimo registro creado
														$ultimaAsignaturaCreada = $this->db->insert_id();
														
														//Una vez creada la nueva asignatura hay que crearles las restricciones horarias que tiene la original.
														//Busco todas las restricciones de la asignatura en cuestion para importarlas.
														$listadoRestricciones = $this->m_tiempoasignableasignatura->buscarActivos(" AND tiempoasignableasignatura.idAsignatura=".$asignatura->idAsignatura);
														
														//Recorremos todas las restricciones y las creamos a la nueva asignatura
														foreach ($listadoRestricciones->result() as $restriccion){
															$resultadoParcial = $this->m_tiempoasignableasignatura->crear($ultimaAsignaturaCreada, $restriccion->idTurno, $restriccion->dia, $restriccion->periodo, $restriccion->disponibilidad, 1, $this->session->userdata('idUsuarioLog'));
															$resultado += $resultadoParcial;
														}
														
														//Busco todos los modulos activos de la asignatura en cuestion para saber si hay que importar alguno.
														$listadoModulos = $this->m_modulo->buscarActivos(" AND modulo.idAsignatura=".$asignatura->idAsignatura);

														//Recorremos todos los modulos e importamos los seleccionados
														foreach ($listadoModulos->result() as $modulo){
															//Verificamos si el modulo ha sido seleccionado a importar o no
															if($this->input->post('e_'.$curso->idCurso.'_'.$division->idDivision.'_'.$asignatura->idAsignatura.'_m_'.$modulo->idModulo.'_',true) == "on"){
																//Creamos el modulo
																$resultadoParcial = $this->m_modulo->crear($ultimaAsignaturaCreada, $modulo->idTipoModulo, $modulo->idEspacioEscolar, $modulo->idTurno, $modulo->sePuedeDividirConRecreo, $modulo->descripcion, $modulo->estado, $this->session->userdata('idUsuarioLog'));
																$resultado += $resultadoParcial;
															}
														}
														
														//Busco todos los docentes activos de la asignatura en cuestion para saber si hay que importar alguno.
														$listadoDocentes = $this->m_asignacion_docente->buscarActivos(" AND docentexasignatura.idAsignatura=".$asignatura->idAsignatura);
														
														//Recorremos todos los docentes e importamos los seleccionados
														foreach ($listadoDocentes->result() as $docente){
															//Verificamos si el docente ha sido seleccionado a importar o no
															if($this->input->post('e_'.$curso->idCurso.'_'.$division->idDivision.'_'.$asignatura->idAsignatura.'_d_'.$docente->idDxA.'_',true) == "on"){
																//Creamos la asignacion docente
																$resultadoParcial = $this->m_asignacion_docente->crear($docente->idDocente, $ultimaAsignaturaCreada, $docente->idCargoDocente, $docente->estado, $this->session->userdata('idUsuarioLog'));
																$resultado += $resultadoParcial;
															}
														}
													}
												}
											}											
										}
									}
								}
							}
						}
					}
									
					if($resultado >= 1){
						echo("<script> alert('Los elementos del ciclo lectivo: ".$cicloLectivoOrigen->row()->nombre." se han importado correctamente.');</script>");
					}else{
						echo("<script> alert('Los elementos del ciclo lectivo: ".$cicloLectivoOrigen->row()->nombre." no se han importado. Ha habido un error o no ha seleccionado ning\u00fan elemento.');</script>");
					}
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
}